Phiên bản nâng cấp trò chơi đoán số Python 2025
Phiên bản đầu tiên về đoán số :
Phiên bản đầu tiên, về cơ bản thực hiện việc đoán số:
import random
# Định nghĩa biến
cau_tra_loi = random.randint(0, 100)
doan = int(input("Hãy đoán một số nguyên từ 0 đến 100: "))
# Phần chơi game
while doan != cau_tra_loi: # Lặp lại cho đến khi đoán đúng
if doan > cau_tra_loi:
doan = int(input("Lớn quá\nHãy đoán lại một số nguyên từ 0 đến 100: "))
else:
doan = int(input("Nhỏ quá\nHãy đoán lại một số nguyên từ 0 đến 100: "))
print("Bạn đã đoán đúng!")
Phiên bản thứ hai xử lý việc thoát giữa chừng và đánh giá xem các con số có đáp ứng yêu cầu hay không, thêm vòng lặp trò chơi và một số chi tiết:
import random
import sys
# Xử lý câu hỏi
def Xu_ly_thoat(cau_hoi):
try:
return input(cau_hoi)
except KeyboardInterrupt: # Xử lý việc thoát bằng tay
sys.exit()
# Xử lý số đoán
def Doan_so(cau_hoi):
temp = Xu_ly_thoat(cau_hoi)
while True:
try:
temp = int(temp)
if 0 <= temp <= 100:
return temp
else:
temp = Xu_ly_thoat("Số bạn đoán không nằm trong khoảng 0-100, hãy đoán lại một số từ 0-100:")
except ValueError:
temp = Xu_ly_thoat("Bạn đoán không phải là số nguyên, hãy đoán lại một số nguyên từ 0-100:")
thoat = False
while not thoat: # Lặp lại cho đến khi thoát
# Định nghĩa biến
dap_an = random.randint(0, 100)
lan_choi = 0
# Hỏi người chơi có muốn tiếp tục không
while True:
temp2 = Xu_ly_thoat("Bạn có muốn tiếp tục chơi không (Có/Không)?:")
if temp2 == "Có":
thoat = False
break
elif temp2 == "Không":
thoat = True
break
else:
print("Lựa chọn không hợp lệ, hãy nhập (Có/Không)")
if not thoat: # Nếu không thoát, tiếp tục trò chơi
doan = Doan_so("Hãy đoán một số nguyên từ 0 đến 100:")
# Bắt đầu trò chơi
while doan != dap_an:
lan_choi += 1
if doan > dap_an:
doan = Doan_so("Lớn quá\nHãy đoán lại một số nguyên từ 0 đến 100:")
else:
doan = Doan_so("Nhỏ quá\nHãy đoán lại một số nguyên từ 0 đến 100:")
# Kết thúc trò chơi
print("Bạn đã đoán đúng")
print(f"Bạn đã đoán {lan_choi} lần")
Phiên bản thứ ba bổ sung thêm nhiều chế độ hơn (trận chiến hai người chơi, trận chiến ba người chơi) và bảng điểm.
import random
import sys
# Xử lý câu hỏi
def Xu_ly_thoat(cau_hoi):
try:
return input(cau_hoi)
except KeyboardInterrupt: # Xử lý việc thoát bằng tay
sys.exit()
# Xử lý số đoán
def Doan_so(cau_hoi):
temp = Xu_ly_thoat(cau_hoi)
while True:
try:
temp = int(temp)
if 0 <= temp <= 100:
return temp
else:
# Xử lý các chế độ khác nhau
if kieu_choi == 1:
temp = Xu_ly_thoat("Số bạn đoán không nằm trong khoảng 0-100, hãy đoán lại một số từ 0-100:")
else:
temp = Xu_ly_thoat(
"Người chơi %d - Số bạn đoán không nằm trong khoảng 0-100, hãy đoán lại một số từ 0-100:" % (lan_choi % kieu_choi + 1))
except ValueError:
if kieu_choi == 1:
temp = Xu_ly_thoat("Bạn đoán không phải là số nguyên, hãy đoán lại một số nguyên từ 0-100:")
else:
temp = Xu_ly_thoat("Người chơi %d - Bạn đoán không phải là số nguyên, hãy đoán lại một số nguyên từ 0-100:" % (lan_choi % kieu_choi + 1))
thoat = False
diem_thang = {"Người chơi 1": 0, "Người chơi 2": 0, "Người chơi 3": 0}
while not thoat: # Lặp lại cho đến khi thoát bằng tay hoặc chọn chế độ thoát
# Định nghĩa biến
dap_an = random.randint(0, 100)
kieu_choi = Xu_ly_thoat("1: Luyện tập đơn\n2: Đối kháng hai người\n3: Đối kháng ba người\n4: Xem điểm\nq: Thoát\nHãy chọn một chế độ:")
lan_choi = 0
# Xử lý lựa chọn chế độ
while True: # Lặp lại cho đến khi lựa chọn hợp lệ
# 1. Kiểm tra xem lựa chọn có phải là số không
try:
kieu_choi = int(kieu_choi)
if 1 <= kieu_choi <= 3:
break
elif kieu_choi == 4:
print(diem_thang)
break
else:
pass
except BaseException:
pass
# 2. Xử lý các lựa chọn chuỗi, chuyển thành số và xử lý các trường hợp khác (thoát, lựa chọn sai, hiển thị điểm)
if kieu_choi == "Luyện tập đơn":
kieu_choi = 1
break
elif kieu_choi == "Đối kháng hai người":
kieu_choi = 2
break
elif kieu_choi == "Đối kháng ba người":
kieu_choi = 3
break
elif kieu_choi == "Xem điểm":
print(diem_thang)
break
elif kieu_choi in ["q", "Q", "Thoát"]:
thoat = True
else:
print("Lựa chọn sai")
kieu_choi = Xu_ly_thoat("1: Luyện tập đơn\n2: Đối kháng hai người\n3: Đối kháng ba người\nHãy chọn một chế độ:")
# Xử lý theo chế độ chơi
if kieu_choi == 1:
doan = Doan_so("Hãy đoán một số nguyên từ 0 đến 100:")
else:
doan = Doan_so("Người chơi 1 - Hãy đoán một số nguyên từ 0 đến 100:")
# Bắt đầu trò chơi
while doan != dap_an:
lan_choi += 1
if doan > dap_an:
if kieu_choi == 1:
doan = Doan_so("Lớn quá\nHãy đoán lại một số nguyên từ 0 đến 100:")
else:
doan = Doan_so("Lớn quá\nNgười chơi %d - Hãy đoán lại một số nguyên từ 0 đến 100:" % (lan_choi % kieu_choi + 1))
else:
if kieu_choi == 1:
doan = Doan_so("Nhỏ quá\nHãy đoán lại một số nguyên từ 0 đến 100:")
else:
doan = Doan_so("Nhỏ quá\nNgười chơi %d - Hãy đoán lại một số nguyên từ 0 đến 100:" % (lan_choi % kieu_choi + 1))
# Kết thúc trò chơi
if kieu_choi == 1:
print("Bạn đã đoán đúng")
print(f"Bạn đã đoán {lan_choi} lần")
else:
diem_thang["Người chơi %d" % (lan_choi % kieu_choi + 1)] += 1
print("Người chơi %d thắng" % (lan_choi % kieu_choi + 1))
print("Điểm:", diem_thang)
Thế thôi. ok chưa :D
hay thì like cái, lỗi gì cũng cmt luôn